As an increasing number of applications and services are being made available over networks such as the Internet, an increasing number of content, application, and/or service providers are turning to technologies such as remote resource sharing cloud computing. Cloud computing, in general, is an approach to providing access to electronic resources through services, such as Web services, where the hardware and/or software used to support those services is dynamically scalable to meet the needs of the services at any given time. A user or customer typically will rent, lease, or otherwise pay for access to resources through the cloud, and thus does not have to purchase and maintain the hardware and/or software to provide access to these resources.
In some environments, multiple users can share resources such as data repositories, wherein the users can concurrently send multiple read and/or write requests to be executed against the same data instance, for example. Problems can arise, however, when the number of concurrent requests exceeds the ability of the instance to process those requests. In one example, a data server for an instance might get into an overload situation and begin putting back pressure on the incoming requests in order to reduce the rate of incoming requests and allow the system to recover from the overload situation. As a result of the push back, however, customers might not receive a desired or necessary rate of request handling (e.g., satisfying or otherwise processing received requests), which can upset the customers and in some cases cause the customers to look to other providers for data storage and similar resources. Certain conventional approaches attempt to throttle requests when a particular customer exceeds some usage threshold, for example, but these approaches tend to be reactive and can still lead to the other customers of a resource experiencing slow downs and overload situations. Further, conventional approaches do not provide customers with the ability to easily adjust the rates or allocation of various resources.